home *** CD-ROM | disk | FTP | other *** search
/ Mac Magazin/MacEasy 19 / Mac Magazin and MacEasy Magazine CD - Issue 19.iso / Grafik & Text & Film / Quark XTensions / Freeware Xtensions / XPress Scripts 1.5 / ResMover and DialogRunner / Dialog Runner⁄ResMover Read Me next >
Text File  |  1993-06-11  |  8KB  |  66 lines

  1. DialogRunner and ResMover
  2. by Chris Reed
  3. ©1993, Chris Reed
  4.  
  5. What are they?
  6. ResMover and DialogRunner are two scripting additions which were written to fill gaps in AppleScript’s capabilities. In order to use them, put  them into your Scripting Additions folder in the Scripting Additions folder and restart your Macintosh.
  7.  
  8. DialogRunner
  9. One of the biggest disadvantages to using AppleScript is  the absence of any user interface. Though it does provide the ability to show simple dialogs, it can’t show dialogs with more than one field, more than one prompt, checkboxes, or radio buttons.
  10. DialogRunner addresses this need by allowing you to run and get information from dialog resources.
  11. This allows you to design a dialog with a resource editing utility such as ResEdit and use that dialog from your script. This gives you a greater amount of flexibility in the kind of dialogs you can show.
  12.  
  13. Designing a Dialog
  14. To design a dialog, you must use a utility such as ResEdit. You must create two resources, a “DLOG” resource and a “DITL” resource. The two resources must have the same ID in order for them to be linked together.
  15. The DITL resource is a representation of the physical elements of the dialog, such as the buttons. When you create a DITL resource, you will get a palette with all the elements you can use to design your dialog. To use one, drag it from the palette to the dialog. Then double-click on the item in the dialog, and you will be able to edit the item itself.
  16. The DLOG resource contains information about the type of dialog, and how it is positioned on the screen. It also contains information about the size of the dialog. DialogRunner can only handle modal dialogs, so you are limited to standard modal dialogs and moveable modal dialogs.
  17. Each item in a dialog has a specific number, called its ID. Generally, the first button is item number 1 and the second button is item number 2, and so on. Beyond that, there are no rules for what numbers to assign specific items in the dialog.
  18.  
  19. For a complete guide to designing dialogs, be sure and pick up a copy of "Zen and the Art of Resource Editing" from your local bookstore or from BMUG at (510) 549-2684.
  20. DialogRunner gives you the ability to use radio buttons in your dialogs. In order to use radio buttons, all the radio buttons in a group must have sequential IDs. Groups of radio buttons must be separated by at least one item numerically.
  21. To link these radio buttons, you must use a RDIO resource. The template for this resource is in the "Hello.rsrc" file, and must be installed in your ResEdit Preferences or in the same file as the RDIO resource you're editing. For each dialog with radio buttons, you must have one RDIO resource with the same ID and the same name as the dialog resource. The resource is a list of items where each item represents a group of radio buttons. Each item requires you to type in the ID of the lowest item in the group  of radio buttons and the ID of the highest item in the group. For an example of how this works, see the Hello.rsrc file.
  22.  
  23. Running a dialog.
  24. To run a dialog from within a script, use the “run dialog” command. When you use the command you must provide at least three pieces of information. The first information is the name of the resource. The second piece of information is a file reference to the file where that dialog is stored. Finally you must provide a list where each item is the name of a button which will dismiss the dialog. For the exact syntax, use Script Editor’s “Open Dictionary…” command to look at the dictionary of the DialogRunner scripting addition.
  25.  
  26. You may also provide several optional parameters. The first of these is the “param text” parameter. When you design your dialog, you may use placeholders for your static text. Instead of writing the exact string, you may use the string ^0, ^1, and so on. When calling this dialog, you provide the values which are put into those placeholders by providing a list where each item is the text to put into the placeholder, in order. Thus, the first item in this list would replace ^0 and so on. You can put these placeholders inside other text strings as well. This allows you to change the static text of the dialog to reflect some additional piece of information.
  27. The second optional parameters is the “edit texts” parameter. This is a list where each item is the intial value placed into an editable text field. The list has to have the same number of items as there are editable text fields, and the items must be in the same order as the editable text fields, as represented by their item numbers within the dialog. The editable text fields can be separated by many other items, but they will still have a certain order from the lowest item number to the highest number, and the list reflects that item so that the first item corresponds to the editable text field with the lowest ID and the last item in the list represents the editable text field with the highest ID. This allows you to put information into an editable text field which can either serve as the default value or can provide information about what the user should type in this field.
  28.  
  29. The third optional parameter is “checkboxes” This is a list where each item is either the word checked or unchecked (without quotes). This list follows the same rules as that used for the editable text fields. This allows you to show the dialog with certain checkboxes already checked.
  30.  
  31. The final optional parameter is “radio buttons.” This is a list where each item represents a group of radio buttons. The value in the list represents the radio button which is selected when the dialog appears. It is an integer which represents the order of that radio button in the group, again based on that radio button’s ID. To select the radio button with the lowest ID in a group of radio buttons, where that is the only group of radio buttons in the dialog, you would write the following text in the command:
  32. radio buttons {1}
  33.  
  34. All of these options allow you to completely configure the dialog before displaying it to the user. If you have a dialog which is described by the following list:
  35.  
  36. Item 1 - Push button named “OK”
  37. Item 2 - Push button named “Cancel”
  38. Item 3 - Static text: “Sample Dialog”
  39. Item 4 - Static text: “Placeholder ^0”
  40. Item 5 - Editable text
  41. Item 6 - Checkbox: “Sample Checkbox”
  42. Item 7 - Radio Button: “Radio Button 1”
  43. Item 8 - Radio Button: “Radio Button 2”
  44. Item 9 - Checkbox: “Second Checkbox”
  45. Item 10 - Editable text
  46.  
  47. and you wish to display it so that the first placeholder says “1,” the second editable text field has the text “Default Text” but the first one is empty, the first checkbox is checked but the second is not, and the first radio button is selected, you would write the following command:
  48. run dialog "foo" in file "Drive:Folder:File" until {"OK","Cancel"} param text {"1"} edit texts {"","Default Text"} checkboxes {checked,unchecked} radio buttons {1}.
  49.  
  50. What You Get from the Dialog
  51. To see what you get when the user dismisses the dialog, look at the description under "dialog reply" in the dictionary for this addition. This describes each of the labels in the record which is returned from the dialog.
  52.  
  53. ResMover
  54. This scripting addition allows you to manipulate resources from a script. The commands are all very straightforward, and can be seen by looking through the dictionary of the scripting addition.
  55.  
  56. Legal Information
  57. These scripting additions are copyright to the author. They may be publicly distributed, but they may not be put onto a CD-ROM or included in any sort of commercial product without the express permission of the author. The entire package, including this Read Me, must be distributed as is.
  58. These scripting additions are shareware. If you use them, send $15 to the following address:
  59.  
  60. Chris Reed
  61. 3409 Clearview
  62. San Angelo TX 76904-8108
  63.  
  64. E-mail:
  65. ChrisReed on America Online
  66. chrisreed@aol.com on the InterNet.